[C] Arquivos e Stat
Publicado por Enzo de Brito Ferber (última atualização em 23/09/2010)
[ Hits: 8.537 ]
Homepage: http://www.maximasonorizacao.com.br
Programa simples mostrando como usar a função stat(), e como manipular aquivos de uma forma bem simples. Ponteiros também são usados.
Baixe:
$ tar -xzvf loadfile.tar.gz
$ cd loadfile
$ ./loadfile text
;)
[]'s
/* loadfile.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
int main ( int argc, char *argv[] )
{
char *fullfile, *p, *p2, c ;
struct stat fileinfo;
FILE *openfile;
if ( argc < 2 )
{
printf ( "[*] Usage: %s <file>\n", argv[0] );
exit ( EXIT_FAILURE );
}
/* read-binary permission */
openfile = fopen ( argv[1], "rb" );
if ( !openfile )
{
printf ( "[*] Can't open file %s\n", argv[1] );
exit ( EXIT_FAILURE );
}
/* file info for file size */
if ( stat ( argv[1], &fileinfo ) == -1 )
{
printf ( "[*] Can't stat() file %s\n", argv[1] );
exit ( EXIT_FAILURE );
}
/* alloc memory for the pointer
*
* fileinfo.st_size = size of the file in bytes
*/
fullfile = ( char * ) malloc ( fileinfo.st_size * sizeof ( char ));
if ( !fullfile )
{
printf ( "[*] Can't malloc() %d bytes\n", fileinfo.st_size );
exit ( EXIT_FAILURE );
}
/* To view all the resources of the stat structure:
*
* $ man stat
*/
printf ( "File info:\n" );
printf ( "UID : %d\n", fileinfo.st_uid );
printf ( "GID : %d\n", fileinfo.st_gid );
printf ( "Size: %d bytes\n", fileinfo.st_size );
printf ( "Mode: %8.8x\n", fileinfo.st_mode );
/* reference pointer */
p = fullfile;
while ( 1 )
{
if ( feof ( openfile )) break;
fscanf ( openfile, "%c", &(*(p++)) );
}
/* print file */
p2 = fullfile;
while ( fullfile < p ) putchar ( *(fullfile++) );
/* put back in place what you use */
free ( p2 );
fclose ( openfile );
return 0;
}
Números de caracteres em arquivo
Cadastor de Produtos em C e metodos ordenação
Nenhum comentário foi encontrado.
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Manutenção básica para Gentoo Linux (com script)
Conheça o Zashterminal, um terminal moderno com IA
DOOM Carniceiro: rode o Meatgrinder com uzdoom (Gentoo e Ubuntu)
Samba 4 AD-DC 2026: Como instalar e configurar um Active Directory (via APT-GET)
[Resolvido] Sumiço de redes e micro quedas no iwd/iwgtk (Realtek rtw88)
eu queria saber no lenovo slim, se tem como ver os mhz de memoria e tu... (3)
Links importantes de usuários do vol (2)









